<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://webservices.groove.net/Groove/2.0/vCard/" elementFormDefault="qualified" targetNamespace="http://webservices.groove.net/Groove/2.0/vCard/" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Read">
    <xs:complexType />
  </xs:element>
  <xs:element name="ReadResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ReadResult" type="tns:vCard" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="vCard">
    <xs:sequence>
      <xs:element minOccurs="0" name="Name" type="tns:Name" />
      <xs:element minOccurs="0" name="FullName" type="xs:string" />
      <xs:element minOccurs="0" name="NickName" type="xs:string" />
      <xs:element minOccurs="0" name="Url" type="xs:anyURI" />
      <xs:element name="Addresses" type="tns:AddressList" />
      <xs:element name="PhoneNumbers" type="tns:PhoneList" />
      <xs:element name="EmailAddresses" type="tns:EmailList" />
      <xs:element name="Organization" type="tns:Organization" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="vCardList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="vCard" type="tns:vCard" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Address">
    <xs:sequence>
      <xs:element minOccurs="0" name="PoBox" type="xs:string" />
      <xs:element minOccurs="0" name="Extended" type="xs:string" />
      <xs:element minOccurs="0" name="Street" type="xs:string" />
      <xs:element minOccurs="0" name="Locality" type="xs:string" />
      <xs:element minOccurs="0" name="Region" type="xs:string" />
      <xs:element minOccurs="0" name="PostCode" type="xs:string" />
      <xs:element minOccurs="0" name="Country" type="xs:string" />
      <xs:element minOccurs="0" name="DeliveryTypes" type="tns:DeliveryTypeList" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AddressList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Address" type="tns:Address" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Name">
    <xs:sequence>
      <xs:element minOccurs="0" name="Family" type="xs:string" />
      <xs:element minOccurs="0" name="Given" type="xs:string" />
      <xs:element minOccurs="0" name="Other" type="xs:string" />
      <xs:element minOccurs="0" name="Prefix" type="xs:string" />
      <xs:element minOccurs="0" name="Suffix" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Email">
    <xs:sequence>
      <xs:element minOccurs="0" name="EmailAddress" type="xs:string" />
      <xs:element minOccurs="0" name="EmailTypes" type="tns:EmailTypeList" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="EmailList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Email" type="tns:Email" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="EmailTypeList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="3" name="EmailType" type="tns:EmailType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Phone">
    <xs:sequence>
      <xs:element minOccurs="0" name="PhoneNumber" type="xs:string" />
      <xs:element minOccurs="0" name="PhoneTypes" type="tns:PhoneTypeList" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PhoneList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Phone" type="tns:Phone" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="PhoneType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="home" />
      <xs:enumeration value="work" />
      <xs:enumeration value="voice" />
      <xs:enumeration value="fax" />
      <xs:enumeration value="pager" />
      <xs:enumeration value="message" />
      <xs:enumeration value="cell" />
      <xs:enumeration value="video" />
      <xs:enumeration value="bbs" />
      <xs:enumeration value="modem" />
      <xs:enumeration value="isdn" />
      <xs:enumeration value="car" />
      <xs:enumeration value="pcs" />
      <xs:enumeration value="preferred" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="PhoneTypeList">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="14" name="PhoneType" type="tns:PhoneType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Organization">
    <xs:sequence>
      <xs:element minOccurs="0" name="Title" type="xs:string" />
      <xs:element minOccurs="0" name="Role" type="xs:string" />
      <xs:element name="OrganizationInfos" type="tns:OrganizationInfoList" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OrganizationInfo">
    <xs:sequence>
      <xs:element name="Name" type="xs:string" />
      <xs:element name="Unit" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OrganizationInfoList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="OrganizationInfo" type="tns:OrganizationInfo" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="DeliveryType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="domestic" />
      <xs:enumeration value="international" />
      <xs:enumeration value="parcel" />
      <xs:enumeration value="postal" />
      <xs:enumeration value="home" />
      <xs:enumeration value="work" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="DeliveryTypeList">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="6" name="DeliveryType" type="tns:DeliveryType" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="EmailType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="internet" />
      <xs:enumeration value="x400" />
      <xs:enumeration value="preferred" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>